package com.tianqu.tms.entity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.tianqu.tms.core.base.TmsEntity;
import com.tianqu.tms.core.exception.TmsDaoException;
import com.tianqu.tms.core.exception.TmsException;
import com.tianqu.tms.dao.CarCodesDao;
import com.tianqu.tms.dao.CarCodesDaoImp;
import com.tianqu.tms.dto.CarCodesDto;

/**
 * 车辆品牌信息字典表
 * 
 * @author tianshifu
 * 
 */

public class CarCodes extends TmsEntity {

	/**
	 * Serializable id
	 */
	private static final long serialVersionUID = 8941684905894069063L;

	private String vendorId;// 车辆品牌id

	private String brandId;// 车系id

	private String carStyleId;// 车辆款式id

	private String vendorName;// 车辆品牌名称

	private String brandName;// 车系名称

	private String carStyleName;// 车辆款式名称
	
	/**车辆品牌代码**/
//	S001	阿斯顿马丁
//	S002	奥迪
//	S003	安驰
//	S004	阿尔法罗米欧
//	S005	奥兹莫比尔
//	S006	宝龙
//	S007	宝马
//	S008	保时捷
//	S009	北汽制造
//	S010	奔驰
//	S011	奔腾
//	S012	本田
//	S013	比亚迪
//	S014	标致
//	S015	别克
//	S016	宾利
//	S017	波罗乃兹
//	S018	布加迪
//	S019	昌河
//	S020	长安
//	S021	长城
//	S022	长丰
//	S023	川汽
//	S024	达契亚
//	S025	大迪
//	S026	大发
//	S027	大宇
//	S028	大众
//	S029	道奇
//	S030	帝豪
//	S031	东风
//	S033	东南
//	S034	法拉利
//	S035	飞碟
//	S036	菲亚特
//	S037	丰田
//	S038	丰田Scion
//	S039	伏尔加
//	S040	福迪
//	S041	福特
//	S042	福田
//	S043	光冈
//	S044	哈飞
//	S045	海马
//	S046	悍马
//	S047	黑豹
//	S048	红旗
//	S049	华北
//	S050	华普
//	S051	华泰
//	S052	华翔
//	S053	华阳
//	S054	黄海
//	S055	霍顿
//	S056	吉奥
//	S057	吉利
//	S058	吉姆
//	S059	吉普
//	S060	江淮
//	S061	江铃
//	S062	江南
//	S063	捷豹
//	S064	金杯
//	S065	金程
//	S066	精灵
//	S067	九龙
//	S068	开瑞
//	S069	凯迪拉克
//	S070	柯尼赛格
//	S071	克莱斯勒
//	S072	拉达
//	S073	兰博基尼
//	S074	蓝旗亚
//	S075	劳斯莱斯
//	S076	雷克萨斯
//	S077	雷诺
//	S078	力帆
//	S079	莲花
//	S080	林肯
//	S081	铃木
//	S082	陆风
//	S083	路虎
//	S084	罗孚
//	S085	马自达
//	S086	玛莎拉蒂
//	S087	迈巴赫
//	S088	美亚
//	S089	迷你
//	S090	名爵
//	S091	南汽
//	S092	讴歌
//	S093	欧宝
//	S094	帕加尼
//	S095	庞蒂克
//	S096	普利茅斯
//	S097	奇瑞
//	S098	起亚
//	S099	庆铃
//	S100	日产
//	S101	荣威
//	S102	瑞麒
//	S103	萨博
//	S104	赛宝
//	S105	三菱
//	S106	三星
//	S107	世爵
//	S108	双环
//	S109	双龙
//	S110	水星
//	S111	斯巴鲁
//	S112	斯柯达
//	S113	塔塔
//	S114	天津一汽
//	S115	天马
//	S116	通宝
//	S117	通田
//	S118	通用
//	S119	土星
//	S120	万丰
//	S121	威麟
//	S122	沃尔沃
//	S123	沃克斯豪尔
//	S124	五菱
//	S125	五十铃
//	S126	西亚特
//	S127	厦门金龙
//	S128	现代
//	S129	新大地
//	S130	新凯
//	S131	雪佛兰
//	S132	雪铁龙
//	S133	一汽
//	S134	伊斯坦纳
//	S135	依维柯
//	S136	英菲尼迪
//	S137	英格尔
//	S138	英伦
//	S139	云豹
//	S140	云雀
//	S141	中华
//	S142	中顺
//	S143	中兴
//	S144	中誉
//	S145	众泰
//	S146	广汽
//	S147	宝骏
//	S148	GMC
//	S149	劳伦士
//	S150	纳智捷
//	S151	威兹曼
//	S152	永源
//	S153	BRABUS巴博斯
	
	
	/**
	 * 实例化carCodes表
	 * @return
	 */
	private static CarCodes instance;

	List<CarCodes> codes = null;

	/**
	 * 加载carCodes
	 * 
	 * @return
	 * @throws TmsDaoException
	 */
	public static CarCodes getInstance() throws TmsDaoException {
		if (null == instance) {
			instance = new CarCodes();
			instance.init();
		}
		return instance;
	}
	
	/**
	 * 实例化carCodes
	 * 
	 * @throws TmsDaoException
	 */
	public void init() throws TmsDaoException {
		codes = new ArrayList<CarCodes>();
		setCodes();
	}
	/**
	 * 取出carCodes信息存入静态codes中
	 * @throws TmsDaoException
	 */
	public void setCodes() throws TmsDaoException {
		CarCodesDao dao = new CarCodesDaoImp();
		List<CarCodesDto> list = dao.findCarCodesInfo();
		for (int i = 0; i < list.size(); i++) {
			CarCodesDto dto = (CarCodesDto) list.get(i);
			CarCodes entity = new CarCodes();
			entity.setVendorId(dto.getVendorId());
			entity.setBrandId(dto.getBrandId());
			entity.setCarStyleId(dto.getCarStyleId());
			entity.setVendorName(dto.getVendorName());
			entity.setBrandName(dto.getBrandName());
			entity.setCarStyleName(dto.getCarStyleName());
			codes.add(entity);
		}
	}
	
	/**
	 * 通过车辆品牌ID或许车系名称
	 * @return
	 */
	public List getBrandNameByVendorId(String vendorId){
		Map map = new HashMap();
		List list = new ArrayList();
		
		for(int i=0;i<codes.size();i++)
		{
			CarCodes entity = (CarCodes)codes.get(i);
			//品牌匹配
			if(entity.getVendorId().equals(vendorId))
			{
				map.put("brandId", entity.getBrandId());
				map.put("brandName", entity.getBrandName());
				list.add(map);				
			}
		}
		if(list.size()==0){
			return null;
			}
		return list;
	}
	/**
	 * 通过车系ID查询出车辆款式信息
	 * @return
	 */
	public List getCarStyleInfoByBrandId(String brandId){
		Map map = new HashMap();
		List list = new ArrayList();
		for(int i=0;i<codes.size();i++){
			CarCodes entity = (CarCodes)codes.get(i);
			if(entity.getBrandId().equals(brandId))
			{
				map.put("carStyleId", entity.getCarStyleId());
				map.put("carStyleName", entity.getCarStyleName());
				list.add(map);				
			}
		}
		if(list.size()==0)
		{
			return null;
		}
		return list;
	}


	public String getVendorId() {
		return vendorId;
	}

	public void setVendorId(String vendorId) {
		this.vendorId = vendorId;
	}

	public String getBrandId() {
		return brandId;
	}

	public void setBrandId(String brandId) {
		this.brandId = brandId;
	}

	public String getCarStyleId() {
		return carStyleId;
	}

	public void setCarStyleId(String carStyleId) {
		this.carStyleId = carStyleId;
	}

	public List<CarCodes> getCodes() {
		return codes;
	}

	public void setCodes(List<CarCodes> codes) {
		this.codes = codes;
	}

	public String getVendorName() {
		return vendorName;
	}

	public void setVendorName(String vendorName) {
		this.vendorName = vendorName;
	}

	public String getBrandName() {
		return brandName;
	}

	public void setBrandName(String brandName) {
		this.brandName = brandName;
	}

	public String getCarStyleName() {
		return carStyleName;
	}

	public void setCarStyleName(String carStyleName) {
		this.carStyleName = carStyleName;
	}

	@Override
	public void save() throws TmsDaoException, TmsException {

	}

}
